This invention generally relates to computer networks. More specifically, this invention relates to a method and apparatus for retrieving information in a computer network.
The wide spread use of computer systems has prompted the development of many types of computer networks which allow multiple computer systems to communicate with each other. One significant computer network that has recently become very popular is known as the Internet. The Internet grew out of the use of computers and networks and has since evolved into a very sophisticated worldwide network of computer systems.
For a network connection and communication between two computers to be established, the two computers must be able to "speak" a common language. In other words, the two computers must be able to understand or use a common communication protocol. On the Internet (i.e., Web), this common language is the "hypertext transfer protocol" (HTTP).
A user on a computer system typically accesses the Internet using a software application known as a "Web browser". Generally a Web browser is a client application (Web client) executing in a computer system that enables a network connection, via the Internet, to other computer systems. Typically, the Web browser establishes an Internet network connection with another computer system generally known as a "Web server". Generally, a Web client sends HTTP requests to a Web server that returns pages of information typically in the form of text displayed in a format known as "hypertext markup language" (HTML). The Web browser receives the information as HTML pages from the Web server. In turn, the Web browser interprets the information provided in any received HTML pages, and subsequently displays the information on the user's computer system or terminal.
To locate information in a network, an addressing mechanism is needed. To facilitate locating Web pages on a particular computer system in the Internet, HTTP and HTML use an addressing mechanism known as a "uniform resource locator" (URL) to identify an Internet resource. A URL typically includes a portion of the address specifying the Web server computer system and then a path on that Web server leading to the resource or a relevant directory for that resource.
Generally, Web pages may contain static and dynamic data. Generally static data is data on a page that remains the same regardless of who accesses the data or when it is accessed. More recently, Web pages include dynamic data which is data on certain portions of the page that is subject to change. For example, dynamic data includes displaying stock market statistics or other data that may change periodically.
In some applications a user on one computer system using the Internet may require access to several pieces of dynamically changing data on one or more different Web server computer systems. For example, a user's Web browser in a first computer system may be interpreting an HTML file which requires five pieces of dynamic information from five different Web servers also connected to the user's system via the Internet. For uses such as this, a technique is needed which provides the updated information as needed from the multiple server nodes.
One technique used is to have the user's browser sequentially and synchronously contact each server node and await information from each of the multiple servers. In other words, a Web client issues a first request for first information from a first Web server. The Web client synchronously waits for this information to be returned. Subsequently, the Web client issues a second request for second information from a second Web server, and so on, until all information has been received by the Web client.
This technique has a drawback of being a very lengthy process in which each server is contacted in serialized, sequential order. To request additional information from a subsequent server, the client first receives information as requested from the previous server. Depending upon the number of Web servers to be contacted for the pieces of dynamic information, the total amount of time to obtain this information and display it to a user is generally not acceptable for interactive use.
A second technique used when multiple pieces of dynamic information are to be gathered from servers on a network, such as the Internet, involves designing an application, such as a Web page, such that no piece of dynamic information is automatically obtained from a server system. In other words, a user manually selects each particular piece of dynamic information to be obtained rather than designing a Web page, as in the first technique, which automatically issues multiple requests serially for dynamic data. Using this second technique, the cost of obtaining dynamic information, in terms of computer time and resources, is incurred on an "as needed" basis based upon user selection. This is an improvement over the first technique in that the overhead is not automatically incurred. However, it is not suitable for use in all types of applications. Additionally, when multiple requests are made by a user for multiple pieces of dynamic data, the same sequential process of the first technique is used thereby incurring the same drawbacks of the first technique.
Thus there is required an efficient technique for obtaining information in a computer network, such as the Internet, in an automated fashion while minimizing the total amount of time and computer resources required to obtain the information.